iT邦幫忙

2022 iThome 鐵人賽

DAY 14
1
Modern Web

Fastify 101系列 第 14

[Fastify] Day14 - Plugin

  • 分享至 

  • xImage
  •  

大家好,我是 Yubin

在 Fastify 的世界中,我們可以透過 Plugins 來擴充許多功能。
這篇文章跟大家介紹 Plugin 這個東西。


Plugin

一個 Plugin 可以把許多功能、routes 、decorators 封裝起來,封裝起來的好處可以透過 JavaScript Module 的特性,把這個 module 分享給其他專案或其他人使用。
對 Fastify 開發者來說,不論是自己定義的 Plugin 或別人寫好,透過 npm install 下載進專案中的 Plugin。只需要透過 server.register() 方法來註冊,就可以享有這個 Plugin 定義的功能。

要設計一個 Plugin 也很單純,以我自己來說也有貢獻一支介接 Keycloak 用來做驗證功能的 Plugin: fastify-keycloak-adapter


我們來看看要如何撰寫一支 Fastify Plugin

import fastify, { FastifyInstance } from 'fastify'

const server: FastifyInstance = fastify()

function MyPlugin (server, opts, done) {
  server.get('/', (request, reply) => {
    return reply.status(200).send({message: "Hello World"})
  }
  done()
}

server.register(MyPlugin)

第一行定義 Plugin,第一個參數是 FastifyInstance
第二個參數是 Option 物件,
第三個參數 done ,呼叫這個 done() 表示這個 Plugin 執行完成。

可以在 Plugin 的內部,定義 route、定義 decorator、寫 log 等動作。

然後在外部透過 FastifyInstance 的 .register() 方法註冊。

就可以完成一支 Fastify Plugin 的實作。


上一篇
[Fastify] Day13 - Decorator
下一篇
[Fastify] Day15 - Logging
系列文
Fastify 10130
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
增廣建文
iT邦研究生 5 級 ‧ 2022-10-02 22:45:51

優質系列推推

我要留言

立即登入留言